<template>
  <!-- “课程发布”页面，对应的步骤条是"发布课程" -->
  <div class="app-container">
    <!--
        后端要响应回来一个coursePublish对象，其中包含了以下属性：
        cover，课程封面图片路径，保存在课程信息表edu_course
        title，课程标题，保存在课程信息表edu_course
        lessonNum，总课时，保存在课程信息表edu_course
        price，课程销售价格，保存在课程信息表edu_course
        subjectParentTitle，一级分类标题，保存在课程信息表edu_subject
        subjectTitle，二级分类标题，保存在课程信息表edu_subject
        teacherName，讲师姓名，保存在课程信息表edu_teacher
        这些属性，存在于三个表中
        目前没有一个对应的JavaBean，来封装数据库查询到的数据
        所以需要在后端，自定义一个VO类JavaBean，然后通过三表联查来封装数据，返回给前端
    -->
    <!--课程预览-->
    <div class="ccInfo">
      <img :src="coursePublish.cover">
      <div class="main">
        <h2>{{ coursePublish.title }}</h2>
        <p class="gray"><span>共{{ coursePublish.lessonNum }}课时</span></p>
        <p><span>所属分类：{{ coursePublish.subjectParentTitle }} — {{ coursePublish.subjectTitle }}</span></p>
        <p>课程讲师：{{ coursePublish.teacherName }}</p>
        <h3 class="red">￥{{ coursePublish.price }}</h3>
      </div>
    </div>
    <!-- 提供页面[上一步]、[发布课程]按钮 -->
    <div style="text-align:center">
      <el-button type="primary" @click="prev()">上一步</el-button>
      <!--:disabled="publishBtnDisabled"表示按钮是否禁用，也就是为了避免按钮多次被点击提交  -->
      <el-button :disabled="publishBtnDisabled" type="primary" @click="publish()">发布课程</el-button>
    </div>
  </div>
</template>

<script>
// 引入course.js，进行发布课程的查询与更新
import courseApi from '@/api/course'
export default {
  data() {
    return {
      publishBtnDisabled: false, // 按钮是否禁用
      coursePublish: {}// 封装查询到的发布课程信息对象
    }
  },
  created() {
    this.getCoursePublish()
  },
  methods: {

    // [上一步]按钮的单击响应事件
    prev() {
      // this.$parent拿到父组件的vue对象，然后调用vue对象中的data属性里面的active值，为其赋值
      this.$parent.active = 1
    },

    // [发布课程]按钮的单击响应事件
    publish() {
      courseApi.publishCourseById(this.$parent.courseId).then(response => {
        this.$message.success('课程发布成功')
        // 当点击[发布课程]按钮后，对按钮进行禁用
        this.publishBtnDisabled = true
        // this.$parent拿到父组件的vue对象，然后调用vue对象中的data属性里面的active值，为其赋值
        /*
       当点击[下一步]按钮，停留在“课程发布”页面，对应的步骤条是"发布课程"，也就是active = 3，
       设置为3不设置为2，是让三个导航条都变绿，表示三个步骤都完成了
       如果设置为2，页面是停留在了“课程发布”页面，但步骤条"发布课程"并没有变色，也就是视觉上代表发布并没有成功，
       但按钮已经被禁用了
      */
        this.$parent.active = 3
      })
    },
    // 查询课程发布信息
    getCoursePublish() {
      courseApi.getCoursePublishById(this.$parent.courseId).then(response => {
        this.coursePublish = response.data.item
      })
    }
  }
}
</script>
<style>
/* 课程预览的样式 */
.ccInfo {
    background: #f5f5f5;
    padding: 20px;
    overflow: hidden;
    border: 1px dashed #DDD;
    margin-bottom: 40px;
    position: relative;
}
.ccInfo img {
    background: #d6d6d6;
    width: 500px;
    height: 278px;
    display: block;
    float: left;
    border: none;
}
.ccInfo .main {
    margin-left: 520px;
}

.ccInfo .main h2 {
    font-size: 28px;
    margin-bottom: 30px;
    line-height: 1;
    font-weight: normal;
}
.ccInfo .main p {
    margin-bottom: 10px;
    word-wrap: break-word;
    line-height: 24px;
    max-height: 48px;
    overflow: hidden;
}

.ccInfo .main p {
    margin-bottom: 10px;
    word-wrap: break-word;
    line-height: 24px;
    max-height: 48px;
    overflow: hidden;
}
.ccInfo .main h3 {
    left: 540px;
    bottom: 20px;
    line-height: 1;
    font-size: 28px;
    color: #d32f24;
    font-weight: normal;
    position: absolute;
}
</style>
